.. _cmlPmCfgSetUnitDist: cmlPmCfgSetUnitDist ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmlPmCfgSetUnitDist ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 Channel, [in] VT_R8 UnitDist ) DESCRIPTION ````````````` - cmlPmCfgSetUnitDist() 함수는 논리적 단위 거리에 대한 펄스 수를 설정합니다. 여기서 논리적 단위 거리라 함은 Move함수에서 사용하는 거리 또는 위치에 대한 단위량을 의미합니다. 이 함수를 사용하여 특별히 지정하지 않는 경우에는 초기값인 „1‟ 로 사용됩니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cml 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardID : 사용자가 설정한 디바이스(보드) ID. ▶ NodeId : 사용자가 제어하고자 하는 노드 번호. ▶ Axis : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, 최대 통합 축 개수 - 1 이하의 값을 축 번호로 설정할 수 있습니다. ▶ UnitDist : 논리적 거리 1을 이동하기 위해서 출력되어야 하는 펄스 수를 설정 혹은 반환합니다. RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 0(ERR_NONE), 수행 성공 REFERENCE ``````````````` .. image:: ../../res/14-5.jpg EXAMPLE ``````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiMLink2_SDK.h” #include “ComiMLink2_SDK_Def.h” /*모터 1회전시 이동거리 (Lr) = 5mm 모터 Command 분해능(Pr) = 10000 pulse/rev 인 기구물이 있다면 Unit distance(Du) = Pr/Lr = 10000/5 = 2000 Unit speed(Vu) = 2000 */ long nChannel = 0;//0번 축을 선택합니다. long BoardID = 0; //Unit distance 를 2000으로 설정합니다. cmlPmCfgSetUnitDist (BoardID, 0, nChannel, 2000 ); /*따라서 Unit distance와 Unit speed를 2000으로 설정하면 다음과 같이 모든 이동함수에서 거리의 단위를 mm단위에 해당하는 값으로 입력할 수 있습니다.*/ //속도 = 100(mm/s), 가/감속도 = 1000(mm/s^2)으로 설정합니다. cmlPmCfgSetSpeedPattern(BoardID, 0, nChannel, cmlMODE_T, 100, 1000, 1000 ); //(+)방향으로 20mm 이송합니다. (실제는 20 * 2000 = 40000 펄스가 출력됩니다.) cmlPmSxMove(BoardID, 0, nChannel, 20, cmDIR_P );